package com.bblocks.standard.controller;


import com.bblocks.common.BaseController;
import com.bblocks.company.CompanyExtraVo;
import com.bblocks.util.R;
import com.bblocks.util.StringUtil;
import com.google.common.collect.Lists;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.List;

/**
 * 系统配置(SysParam)表控制层
 *
 * @author makejava
 * @since 2021-10-29 13:57:44
 */
@Slf4j
@Tag(description = "companyExtra", name = "companyExtra对象")
@RestController
@RequestMapping("/companyExtra")
public class CompanyExtraController extends BaseController {


	@Operation(summary = "获取一个", description = "获取一个")
	@GetMapping("/{id}")
    public R<CompanyExtraVo> get(@PathVariable Long id ) {
        Assert.notNull(id,"id参数不能为空！");
		CompanyExtraVo vo = this.getInfo(id);
        return R.ok(vo);
    }

	@Operation(summary = "获取N个", description = "获取N个")
	@GetMapping("/gets/{count}")
	public R<List<CompanyExtraVo>> gets(@PathVariable Integer count) {
		Assert.notNull(count,"count参数不能为空！");

		List<CompanyExtraVo> result = Lists.newArrayListWithCapacity(count);
		for(int i=0;i<count;i++){
			CompanyExtraVo vo = this.getInfo(null);
			result.add(vo);
		}
		return R.ok(result);
	}

	private CompanyExtraVo getInfo(Long id){
		CompanyExtraVo vo = CompanyExtraVo
				.builder()

				.id(id != null ? id : 2L)
				.cuserId(13)
				.servNum(100)
				.serverPersonNum(200)
				.takeLookNum(300)
				.dealNum(400)
				.level(4.5D)
				.updateTime(new Date())
				//.remark("而提到protostuff，就要先提到Protocol Buffer，它是谷歌出品的一种数据交换格式，独立于语言和平台，类似于json。Google提供了多种语言的实现：java、c++、go和python。对象序列化城Protocol Buffer之后可读性差，但是相比xml，json，它占用小，速度快。适合做数据存储或 RPC 数据交换格式，相对我们常用的json来说，Protocol Buffer门槛更高，因为需要编写.proto文件，再把它编译成目标语言，这样使用起来就很麻烦。但是现在有了protostuff之后，就不需要依赖.proto文件了，他可以直接对POJO进行序列化和反序列化，使用起来非常简单。")
				.remark(StringUtil.getRandomString(150,false))
				.build();
		return vo;
	}

}

